A second-order cone program (SOCP) is a convex optimization problem of the form
where the problem parameters are , and . Here is the optimization variable. When for , the SOCP reduces to a linear program. When for , the SOCP is equivalent to a convex Quadratically constrained quadratic program. Semidefinite programs subsumes SOCPs as the SOCP constraints can be written as Linear Matrix Inequalities(LMI) and can be reformulated as an instance of semi definite program. SOCPs can be solved with great efficiency by interior point methods.
Contents |
Consider a quadratic constraint of the form
This is equivalent to the SOC constraint
Consider a stochastic linear program in inequality form
where the parameters are independent Gaussian random vectors with mean and covariance and . This problem can be expressed as the SOCP
where is the inverse error function.
There are various solvers available for solving SOCP. Some of the popular ones are listed below
1. Free and opensource, with OSI-Approved licenses
Name | License | Brief info |
---|---|---|
CSDP | CPL | a library of routines that implements a predictor corrector variant of the semidefinite programming algorithm of Helmberg, Rendl, Vanderbei, and Wolkowicz |
DSDP | GPL | is present in Linux software channels |
OpenOpt | BSD | universal cross-platform numerical optimization framework; see its SOCP page and full list of problems |
SBmethod | GPL | no longer supported |
SDPT3 | GPL2 | API: MATLAB (commercial); last update - December 2002 |
SDPA | GPL | primal-dual interior-point method |
SDPLR | GPL? | language: C, API: MATLAB |
SeDuMi | GPL? | package for commercial MATLAB |
CVXOPT | GPL | a comprehensive Python library for convex optimization |
2. Commercial
Note that the most of the solvers in the above list are more general solvers (i.e they solve Semidefinite Programs or more general Convex optimization problems). There have been a few benchmarking studies comparing the various solvers [1][2]